package com.etiya.bean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;



import com.etiya.baglanti.EntityUtil;
import com.etiya.entity.YazarBilgileri;

@SuppressWarnings("unchecked")
public class YazarKayitBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -3674159583012810203L;

	public YazarKayitBean() {
		yazargetir();
	}

	private YazarBilgileri yazarBilgisi = new YazarBilgileri();

	private List<YazarBilgileri> yazarListesi = new ArrayList<YazarBilgileri>();

	public void setYazarListesi(List<YazarBilgileri> yazarListesi) {
		this.yazarListesi = yazarListesi;
	}

	public List<YazarBilgileri> getYazarListesi() {
		return yazarListesi;
	}

	public void setYazarBilgisi(YazarBilgileri yazarBilgisi) {
		this.yazarBilgisi = yazarBilgisi;
	}

	public YazarBilgileri getYazarBilgisi() {
		return yazarBilgisi;
	}

	public String sil() {

		        EntityManager em = EntityUtil.getEntityManager();
		        
		        try {
					if (!em.getTransaction().isActive()) {
						em.getTransaction().begin();
						em.remove(yazarBilgisi);
						em.getTransaction().commit();
						yazarBilgisi = new YazarBilgileri();
						
						yazargetir();
					}
				} catch (Exception e) {
					
			
					//em.getTransaction().rollback();
					//em.clear();
				}
				
							
           return null;
	
	}   		

	

	 public String kayit() {
		 
		    EntityManager em = EntityUtil.getEntityManager();

			if (yazarBilgisi.getYazarDogumTarihi().after(yazarBilgisi.getYazarOlumTarihi())) {
					
				FacesContext facesContext = FacesContext.getCurrentInstance();
				FacesMessage facesMessage = new FacesMessage("Doğum Tarihi Ölüm Tarihinden Sonra Olamaz!");
				facesContext.addMessage(null, facesMessage);
				facesContext.addMessage("yazarform:dogumtarih", facesMessage);
				facesContext.addMessage("yazarform:olumtarih", facesMessage);
				
			   } else {
		 
            
		             

		    try {
			    if (!em.getTransaction().isActive()) {
				
				em.getTransaction().begin();
				em.persist(yazarBilgisi);
				em.getTransaction().commit();				
				yazarBilgisi = new YazarBilgileri();
				yazargetir();
			   }
		    } catch (Exception e) {
			  //  em.getTransaction().rollback();
			    //em.clear();
		    	
		    }
		    
	    }    
		return null;
	}

	

	public String duzenle() {

		EntityManager em = EntityUtil.getEntityManager();
		try {
			if (!em.getTransaction().isActive()) {
				
				em.getTransaction().begin();
				em.merge(yazarBilgisi);
				em.getTransaction().commit();
				yazarBilgisi = new YazarBilgileri();
				yazargetir();
			}
		} catch (Exception e) {
			
			//em.getTransaction().rollback();
			 //em.clear();
			
		}
		return null;
	}

	private void yazargetir() {

		EntityManager em = EntityUtil.getEntityManager();
		yazarListesi = em.createQuery("select yazar from YazarBilgileri yazar").getResultList();
	}
	
	public String yeni() {
		
		yazarBilgisi = new YazarBilgileri();

		 return null;
	}

}
